package com.skycan.plc.adapter.model;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 设备信息
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class DeviceInfo {
    /**
     * 设备唯一标识
     */
    private String deviceId;

    /**
     * 设备IP地址
     */
    private String ipAddress;

    /**
     * 设备端口
     */
    private int port;

    /**
     * 设备类型
     */
    private DeviceType deviceType;

    /**
     * 设备状态
     */
    private DeviceStatus status;

    /**
     * 最后一次通信时间
     */
    private long lastCommunicationTime;

    /**
     * 设备类型枚举
     */
    public enum DeviceType {
        S7_200, // 西门子S7-200 SMART
        S7_1200, // 西门子S7-1200
        MODBUS_RTU // Modbus RTU over TCP
    }

    /**
     * 设备状态枚举
     */
    public enum DeviceStatus {
        ONLINE, // 在线
        OFFLINE, // 离线
        ERROR // 错误
    }
}